package eight.test_8_6;

// 抽象类 Shape
abstract class Shape {
    // 抽象方法，用于计算面积
    abstract double calculateArea();

    // 抽象方法，用于显示信息
    abstract void display();
}

// Circle 类，继承自 Shape
class Circle extends Shape {
    private double radius;

    // 构造方法
    public Circle(double radius) {
        this.radius = radius;
    }

    // 实现 calculateArea 方法
    @Override
    public double calculateArea() {
        return Math.PI * radius * radius;
    }

    // 实现 display 方法
    @Override
    public void display() {
        System.out.println("Circle area: " + calculateArea());
    }
}

// Rectangle 类，继承自 Shape
class Rectangle extends Shape {
    private double length;
    private double width;

    // 构造方法
    public Rectangle(double length, double width) {
        this.length = length;
        this.width = width;
    }

    // 实现 calculateArea 方法
    @Override
    public double calculateArea() {
        return length * width;
    }

    // 实现 display 方法
    @Override
    public void display() {
        System.out.println("Rectangle area: " + calculateArea());
    }
}

// 主类
public class Main {
    public static void main(String[] args) {
        // 创建 Circle 对象
        Circle circle = new Circle(5.0);
        // 调用 display 方法
        circle.display();

        // 创建 Rectangle 对象
        Rectangle rectangle = new Rectangle(10.0, 5.0);
        // 调用 display 方法
        rectangle.display();
    }
}
